package com.itheima.health.service.impl;

import com.itheima.health.dao.SetmealReportDao;
import com.itheima.health.service.SetmealReportService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.*;

/**
 * @author ：wm
 * @date ：Created in 2022年06月08日
 * @description ：实现业务层接口完成查找已预约人数的业务并且返回套餐名,套餐名和预约套餐人数
 * @version: 1.0
 */
@Service
@Slf4j
public class SetmealReportServiceImpl implements SetmealReportService {
    @Autowired
    private SetmealReportDao setmealReportDao;


    @Override
    public Map<String, Object> getSetmealReport() {
        //定义name集合为接收name值
        List<Object> name = new ArrayList<>();
        //通过依赖调用dao层实现查找每个套餐下的预约人数和套餐名,返回的是套餐的名称和已预约人数
        List<Map<String, Object>> setmealReports = setmealReportDao.getSetmealReport();
        //遍历查询回来的已订购套餐的人数和名称的集合实现对其中单个数据的操作
        for (Map<String, Object> setmealReport : setmealReports) {
            //通过map集合的get键获取值(通过get(name)获取套餐名)
            Object name1 = setmealReport.get("name");
            //把获取的值存放到list集合中
            name.add(name1);
        }
        //定义map用来通过键值对的方式接收查出来的套餐名称和套餐名称和已预约人数
        Map<String,Object> map = new HashMap<>();
        //把套餐名放到map中键为setmealName
        map.put("setmealNames",name);
        //把套餐名和已预约人数放到map中键为setmealCount
        map.put("setmealCount",setmealReports);
        //返回map 到serivce层-controller层-通过controller接收map集合-返回前端
        return map;
    }
}
